#include <REGX52.H>
#include "LCD1602.h"
#include "DS18B20.h"
#include "delay.h"

float T;

void main()
{
	// 先转换温度，防止出现默认值
	DS18B20_convertT();
	delay(1000);
	LCD_Init();
	LCD_ShowString(1, 1, "Temperature:");
	while(1)
	{
		// 转换温度
		DS18B20_convertT();
		// 读取温度
		T = DS18B20_readT();
		// 若温度小于0
		if(T < 0)
		{
			LCD_ShowString(2, 1, "-");
			// 将温度变为正数
			T = -T;
		}
		// 若温度大于等于0
		else
		{
			LCD_ShowString(2, 1, "+");
		}
		// 显示整数部分
		LCD_ShowNum(2, 2, T, 3);
		LCD_ShowString(2, 5, ".");
		// 显示小数部分（先扩大10000倍，再取模10000）
		LCD_ShowNum(2, 6, (unsigned long)(T*10000)%10000, 4);
	}
}
